package com.ruoyi.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 消息响应实体
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MessageResponse {
    
    /**
     * 是否成功
     */
    private boolean success;
    
    /**
     * 响应消息
     */
    private String message;
    
    /**
     * 消息类型
     */
    private String type;
    
    /**
     * 响应时间
     */
    @Builder.Default
    private LocalDateTime responseTime = LocalDateTime.now();
    
    /**
     * 错误详情 (如果有)
     */
    private String errorDetails;
    
    /**
     * 成功响应构造方法
     */
    public static MessageResponse success(String type, String message) {
        return MessageResponse.builder()
                .success(true)
                .type(type)
                .message(message)
                .build();
    }
    
    /**
     * 失败响应构造方法
     */
    public static MessageResponse failure(String type, String message, String errorDetails) {
        return MessageResponse.builder()
                .success(false)
                .type(type)
                .message(message)
                .errorDetails(errorDetails)
                .build();
    }
}